package com.panda.mall.wares.category.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panda.mall.common.mallWares.dto.ExportCategoryDto;
import com.panda.mall.common.mallWares.dto.QueryCategoryDto;
import com.panda.mall.common.mallWares.entity.MallGoodsCategory;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
* @author tucy123
* @description 针对表【mall_goods_category(商品三级分类表)】的数据库操作Service
* @createDate 2022-12-23 10:04:55
*/
public interface MallGoodsCategoryService extends IService<MallGoodsCategory> {

    /**
     * 新增或修改商品分类
     * @return
     */
    Boolean saveOrUpdateCategory(MallGoodsCategory mallGoodsCategory);

    /**
     * 删除商品分类
     * @param id
     * @return
     */
    Boolean deleteCategory(Long id);

    /**
     * 删除商品分类（完全）
     * @param id
     * @return
     */
    Boolean deletePhysicalCategory(Long id);

    /**
     * 批量商品分类
     * @param ids
     * @return
     */
    Boolean deleteAllCategory(List<Long> ids);

    /**
     * 商品三级分类
     * @return
     */
    List<MallGoodsCategory> listCategoryTree();

    /**
     * 查询三级商品
     * @return
     */
    List<MallGoodsCategory> queryCategory();

    /**
     * 按id查询商品
     * @param id
     * @return
     */
    MallGoodsCategory queryCategoryById(Long id);

    /**
     * 导出商品表
     * @param dto
     * @return
     */
    Boolean exportCategory(HttpServletResponse response, ExportCategoryDto dto);

    /**
     * 分页查询商品分类
     * @return
     */
    Page<MallGoodsCategory> pageCategory(QueryCategoryDto dto);
}
